package transducer;

/**
 * Events that the transducer can fire
 */
public enum TEvent
{
	// global events
	START,
	STOP,
	SET_RECIPE,

	// Control panel
	GLASS_QUEUE_UPDATED,
	GLASS_STATUS_UPDATE,
	
	// conveyor
	CONVEYOR_DO_START,
	CONVEYOR_GUI_START, // TODO: Listen for this in conveyor agent
	CONVEYOR_DO_STOP,
	CONVEYOR_GUI_STOP,
	CONVEYOR_GUI_RELEASE_FINISHED,
	
	// sensor
	SENSOR_GUI_PRESSED,
	SENSOR_GUI_RELEASED,

	// shuttle
	SHUTTLE_STOPPED,
	SHUTTLE_CAN_START,
	SHUTTLE_GLASS_RELEASED,
	
	// popup
	POPUP_DO_MOVE_UP,
	POPUP_GUI_MOVED_UP,
	POPUP_DO_MOVE_DOWN,
	POPUP_GUI_MOVED_DOWN,
	POPUP_RELEASE_GLASS,
	POPUP_GUI_LOAD_FINISHED,
	POPUP_GUI_RELEASE_FINISHED,
	
	//glass shapes
	GLASS_TRIANGLE,
	GLASS_SQUARE,
	GLASS_CIRCLE,
	
	//work done on glass
	GLASS_BREAKOUT,
	GLASS_CROSSSEAMER,
	GLASS_CUTTER,
	GLASS_DRILL,
	GLASS_GRINDER,
	GLASS_OVEN,
	GLASS_PAINT,
	GLASS_UVLAMP,
	GLASS_WASHER,
	
	//glass mouse over
	GLASS_GET_STATUS,

	// truck
	TRUCK_DO_LOAD_GLASS,
	TRUCK_GUI_LOAD_FINISHED,
	TRUCK_DO_EMPTY,
	TRUCK_GUI_EMPTY_FINISHED,

	// workstations
	WORKSTATION_DO_ACTION,
	WORKSTATION_RELEASE_GLASS,
	WORKSTATION_GUI_ACTION_FINISHED,
	WORKSTATION_DO_LOAD_GLASS,
	WORKSTATION_LOAD_FINISHED,
	WORKSTATION_RELEASE_FINISHED,
	
	//bin and "Glass Ghosts"
	BIN_CREATE_PART,
	BIN_PART_CREATED,
	
}
